package com.qixin.web.config;

import com.qixin.api.bean.ComFile;
import com.qixin.api.bean.ComIdcardFile;
import com.qixin.api.bean.ComLicenseFile;
import com.qixin.api.bean.ComPlaycarFile;
import com.qixin.api.service.*;
import com.qixin.util.file.upload.UploadFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 定时跑接口充电站数据
 * Created by Zhang on 2018/10/21.
 */
@Component
public class PrintTask {
    @Autowired
    ComStationinfoService comStationinfoService;
@Autowired
	ComUserCarRentingService  comUserCarRentingService;
//租车
@Autowired
    ComFileService comFileService;
//身份证
@Autowired
    ComIdcardFileService comIdcardFileService;
//营业执照
@Autowired
    ComLicenseFileService comLicenseFileService;
//驾驶证
@Autowired
ComPlaycarFileService comPlaycarFileService;

    private static final Logger logger = LoggerFactory.getLogger(PrintTask.class);

    //每个星期三 晚上十一点 更新充电站数据
    @Scheduled(cron = "0 0 23 ? * WED" )
    public  void cron(){
        Date date=new Date();
        logger.info(date+"开始维护充电站数据");
        try {
            comStationinfoService.dateInsert();
        } catch (SQLException e) {
            e.printStackTrace();
            logger.info(date+"充电站数据维护失败");

        }
    }
	/**
	 * 定时更新租车数据
	 * Created by lv on 2018/11/12.
	 */
/*   @Scheduled(cron = "0 *//*10 * * * ?")
	public void refresh(){
	   SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
	   String date = df.format(new Date());
	   long datetime=System.currentTimeMillis();
	   logger.info(date+"开始刷新租车数据");
	   try {
		   comUserCarRentingService.updaterefresh(datetime);
	   } catch (SQLException e) {
		   e.printStackTrace();
		    logger.info(date+"租车数据获取失败");

	   }
   }*/

    /**
     * 每天的晚上十一点清理垃圾文件
     */
    @Scheduled(cron = "0 0 23 ? * *" )
     public  boolean delFile(){

        //租车文件表
        List<ComFile> list = comFileService.selectnull();
        for(int i=0;i<list.size();i++){
            //删除
            comFileService.deleteRelationId();
            //查询出几个文件表的所有没有关联ID的文件  循环删除数据库记录  并且删除文件
            //垃圾文件
            UploadFile.delFile(list.get(i).getUrl());
        }
            //身份证文件表 comIdcardFileService
        List<ComIdcardFile> list1 = comIdcardFileService.selectnull();
        for (int i = 0; i < list1.size(); i++) {
            //删除
            comIdcardFileService.deleteRelationId();
            //查询出几个文件表的所有没有关联ID的文件  循环删除数据库记录  并且删除文件
            //垃圾文件
            UploadFile.delFile(list1.get(i).getUrl());

        }

        //营业执照表
        List<ComLicenseFile> list2 = comLicenseFileService.selectnull();
        for(int i=0;i<list2.size();i++){
            //删除
            comLicenseFileService.deleteRelationId();
            //查询出几个文件表的所有没有关联ID的文件  循环删除数据库记录  并且删除文件
            //垃圾文件
            UploadFile.delFile(list2.get(i).getUrl());
        }
        //驾驶证文件表 comPlaycarFileService
        List<ComPlaycarFile> list3 = comPlaycarFileService.selectnull();
        for(int i=0;i<list3.size();i++){
            //删除
            comPlaycarFileService.deleteRelationId();
            //查询出几个文件表的所有没有关联ID的文件  循环删除数据库记录  并且删除文件
            //垃圾文件
            UploadFile.delFile(list3.get(i).getUrl());
        }


       return false;
    }
}
